﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace NIEN_LUAN
{
    public partial class FormChiTietNhanVien : Form
    {
        private NIEN_LUAN.Db.DataContentDataContext db = new NIEN_LUAN.Db.DataContentDataContext();      
        private FormQuanLyNhanVien frmquanlynhanvien;
        private Db.NHANVIEN NhanVienMuonSua;
        private FormQuanLyNguoiDung frmquanlynguoidung;
        private FormTimKiemNhanVien frmTimKiemNhanVien;
        private FormTimChiTietNhanVien frmTimNhanVien;       
        
        public FormChiTietNhanVien(FormQuanLyNhanVien frm)
        {
            frmquanlynhanvien = frm;
            InitializeComponent();
        }

        public FormChiTietNhanVien(FormTimKiemNhanVien frm)
        {
            frmTimKiemNhanVien = frm;
            InitializeComponent();
        }

        public FormChiTietNhanVien(FormQuanLyNguoiDung frm)
        {
            frmquanlynguoidung = frm;
            InitializeComponent();
        }

        public FormChiTietNhanVien(FormTimChiTietNhanVien frm)
        {
            frmTimNhanVien = frm;
            InitializeComponent();
        }       

        public FormChiTietNhanVien(Db.NHANVIEN model, FormQuanLyNhanVien frm)
        {            
            InitializeComponent();
            this.txtMaNV.Text = model.MaNhanVien;
            this.txtMaNV.Enabled = false;
            this.txtTenNV.Text = model.TenNhanVien;
            this.dateTimePickerNgSinh.Value = model.NgaySinh.Value;
            this.txtDChiNV.Text = model.DiaChi;
            this.txtSDTNV.Text = model.SoDienThoai;
            this.cmbGioiTinhNV.SelectedValue = model.GioiTinh;
            this.numericUDLuongNV.Value = model.Luong.Value;
            this.cmbChucVu.Text = model.ChucVu;
            this.txtTenTruyCap.Text = model.TenTruyCap;
            this.txtMatKhau.Text = model.MatKhau;
            NhanVienMuonSua = model;
            frmquanlynhanvien = frm;
        }

        public FormChiTietNhanVien(Db.NHANVIEN model, FormTimKiemNhanVien frm)
        {
            InitializeComponent();
            this.txtMaNV.Text = model.MaNhanVien;
            this.txtMaNV.Enabled = false;
            this.txtTenNV.Text = model.TenNhanVien;
            this.dateTimePickerNgSinh.Value = model.NgaySinh.Value;
            this.txtDChiNV.Text = model.DiaChi;
            this.txtSDTNV.Text = model.SoDienThoai;
            this.cmbGioiTinhNV.SelectedValue = model.GioiTinh;
            this.numericUDLuongNV.Value = model.Luong.Value;
            this.cmbChucVu.Text = model.ChucVu;
            this.txtTenTruyCap.Text = model.TenTruyCap;
            this.txtMatKhau.Text = model.MatKhau;
            NhanVienMuonSua = model;
            frmTimKiemNhanVien = frm;
        }

        private void btnThoatCTKH_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;//khi click vao day thi tra ve dialog result la cancel
            this.Close();
        }

        private void btnLuuCTNV_Click(object sender, EventArgs e)
        {
            //kiểm tra hợp lệ dữ liệu
            if (string.IsNullOrEmpty(this.txtMaNV.Text.Trim()))
            {
                MessageBox.Show("Mã nhân viên không được rỗng", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (string.IsNullOrEmpty(this.txtTenNV.Text.Trim()))
            {
                MessageBox.Show("Tên nhân viên rỗng!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                this.txtTenNV.Focus();
                return;
            }

            if (string.IsNullOrEmpty(this.txtDChiNV.Text.Trim()))
            {
                MessageBox.Show("Địa chỉ rỗng!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                this.txtDChiNV.Focus();
                return;
            }

            if (string.IsNullOrEmpty(this.txtSDTNV.Text.Trim()))
            {
                MessageBox.Show("Số điện thoại rỗng!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                this.txtSDTNV.Focus();
                return;
            }

            if (this.numericUDLuongNV.Value <= 0)
            {
                MessageBox.Show("Lương phải lớn hơn 0", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                this.numericUDLuongNV.Focus();
                return;
            }          
  
            if (DateTime.Now.Year - this.dateTimePickerNgSinh.Value.Year<18)
            {
                MessageBox.Show("Chưa đủ tuổi", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);              
                return;
            }                        

            var nhanvien = new NIEN_LUAN.Db.NHANVIEN 
            { 
                MaNhanVien=this.txtMaNV.Text,
                TenTruyCap=this.txtTenTruyCap.Text,
                TenNhanVien=this.txtTenNV.Text,
                Luong=this.numericUDLuongNV.Value,
                NgaySinh=this.dateTimePickerNgSinh.Value,
                GioiTinh=this.cmbGioiTinhNV.Text=="Nam"?true:false,
                DiaChi=this.txtDChiNV.Text,
                MatKhau=this.txtMatKhau.Text,
                SoDienThoai=this.txtSDTNV.Text,
                ChucVu=this.cmbChucVu.Text            
            };

            if (frmquanlynguoidung != null && NhanVienMuonSua == null)
            {

                var nv = (from m in db.NHANVIENs
                          where m.MaNhanVien == this.txtMaNV.Text.Trim()
                          select m).ToList();
                if (nv.Count > 0)
                {
                    MessageBox.Show("Mã trùng!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                db.NHANVIENs.InsertOnSubmit(nhanvien);
                db.SubmitChanges();
                this.frmquanlynguoidung.NguoiDungAdd = nhanvien;
                this.DialogResult = DialogResult.OK;
            }

            if (frmquanlynhanvien != null && NhanVienMuonSua == null)
            {
                var nv = (from m in db.NHANVIENs
                          where m.MaNhanVien == this.txtMaNV.Text.Trim()
                          select m).ToList();
                if (nv.Count > 0)
                {
                    MessageBox.Show("Mã trùng!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                db.NHANVIENs.InsertOnSubmit(nhanvien);
                db.SubmitChanges();
                this.frmquanlynhanvien.NhanVienAdd = nhanvien;
                this.DialogResult = DialogResult.OK;   
            }

            if (frmquanlynhanvien != null && NhanVienMuonSua != null)
            {
                var _nhanvien = db.NHANVIENs.Single(m => m.MaNhanVien  == nhanvien.MaNhanVien);
                _nhanvien.TenNhanVien= nhanvien.TenNhanVien;
                _nhanvien.NgaySinh = nhanvien.NgaySinh;
                _nhanvien.DiaChi = nhanvien.DiaChi;
                _nhanvien.SoDienThoai = nhanvien.SoDienThoai;
                _nhanvien.GioiTinh = nhanvien.GioiTinh;
                _nhanvien.ChucVu = nhanvien.ChucVu;
                _nhanvien.Luong = nhanvien.Luong;
                _nhanvien.TenTruyCap = nhanvien.TenTruyCap;
                _nhanvien.MatKhau = nhanvien.MatKhau;

                db.SubmitChanges();
                this.frmquanlynhanvien.NhanVienSua = _nhanvien;
                this.DialogResult = DialogResult.OK;
                this.Close();              
            }

            if (frmTimKiemNhanVien != null && NhanVienMuonSua != null)
            {
                var _nhanvien = db.NHANVIENs.Single(m => m.MaNhanVien == nhanvien.MaNhanVien);
                _nhanvien.TenNhanVien = nhanvien.TenNhanVien;
                _nhanvien.NgaySinh = nhanvien.NgaySinh;
                _nhanvien.DiaChi = nhanvien.DiaChi;
                _nhanvien.SoDienThoai = nhanvien.SoDienThoai;
                _nhanvien.GioiTinh = nhanvien.GioiTinh;
                _nhanvien.ChucVu = nhanvien.ChucVu;
                _nhanvien.Luong = nhanvien.Luong;
                _nhanvien.TenTruyCap = nhanvien.TenTruyCap;
                _nhanvien.MatKhau = nhanvien.MatKhau;

                db.SubmitChanges();
                this.frmTimKiemNhanVien.NhanVienSua = _nhanvien;
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }       

        private void FormChiTietNhanVien_Load(object sender, EventArgs e)
        {
            System.IO.StreamReader sd = new System.IO.StreamReader("chucvu.txt");
            List<string> lst = new List<string>();
            while (sd.Peek()>0)
            {
                lst.Add(sd.ReadLine());
            }
            sd.Close();
            this.cmbChucVu.DataSource = lst;
           
        }           
    }
}
